写在前面

对于前端来讲,通过node就可以很快的启动一个本地服务。但是受限于公网环境,国内的服务提供商提供的node环境以及MongoDB服务价格太高,不得不转向支持PHP的服务器。没办法,只得撸起袖子码php了。

要在本地环境跑php,需要安装集成环境或者通过虚拟机来搭建php环境。这里我选择了使用Vagrant+Virtualbox来搭建PHP环境。

工具

先去下载并安装Vagrant和VirtualBox,安装好了之后我们检查一下是否成功安装:

1
$ vagrant -v

如果出现:

1
Vagrant 2.1.1

则表示Vagrant 已经安装成功了。

之后去我们去Vagrant Cloud搜索要装系统(box镜像),这里我使用的是scalefactory/centos6

安装

1、init

新建一个目录 - Vagrant,并通过Vagrant init初始化一个虚拟机项目:

1
2
$ mkdir Vagrant && cd Vagrant
$ vagrant init scalefactory/centos6

一堆的输出之后,会看到Vagrant目录下面多了一个Vagrantfile的文件。你可以打开该文件看看里面的内容。这里重点罗列三个点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
# 这里指明虚拟镜像文件,找不到本地的,则会去https://vagrantcloud.com/search下载
config.vm.box = "scalefactory/centos6"

# Create a private network, which allows host-only access to the machine
# using a specific IP.
# 本机和虚拟机的连接方式
config.vm.network "private_network", ip: "192.168.33.10"

# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# 本地目录和虚拟机的挂载路径(映射)
# config.vm.synced_folder "../data", "/vagrant_data"

Puphpet是一个前端UI工具,你可以用它来配置你的虚拟机项目,并生成Vagrant文件

2、up

init之后,使用:

1
$ Vagrant up [name]

来启动安装(第一次up的时候是启动安装,安装完之后会直接启动虚拟机)。
这里会先去下载box,时间会有点长,等到一段信息输出后,会看到ready的提示,表示虚拟机已经安装成功了。

3、ssh

虚拟机启动后,通过ssh命令可以登录到虚拟机:

1
$ vagrant ssh

进入虚拟机系统所使用的账号密码默认都是vagrant。因为后期要在虚拟机中安装php、nginx等工具,所以这里需要切换成root账号:

1
2
3
$[vagrant@centos6]: su
输入新密码:
再次输入新密码:

这里的密码要符合Linux的密码规范:必须包含大小写和特殊字符及数字。

4、halt

当不使用虚拟机的时候,可以采用halt命令可以将虚拟机挂起:

1
$ vagrant halt

更多vagrant的命令,可点击这里参考官方文档